查看原文
其他

干货|神经网络最容易被忽视的基础知识一

2017-10-31 志豪 机器学习算法与自然语言处理
1神经元

下面图表的左边展示了一个生物学的神经元,右边展示了一个常用的数学模型。乍一看还是有点相似的,事实上也是,人工神经网络中的神经元也有受到生物神经元的启发。总结要点:

  • 在生物的神经元(也就是左图)中,树突将信号传递到细胞体,信号在细胞体中相加。如果最终之和高于某个阈值,那么神经元将会激活,向其轴突输出一个峰值信号,注意这里输出是一个脉冲信号!

  • 在数学计算模型(也就是右图)中,首先将输入进行加权求和加上偏置,得到待激励值,然后将该值作为输入,输入到激活函数中,最后输出的是一个激励后的值,这里的激活函数可以看成对生物中神经元的激活率建模。由于历史原因,激活函数常常选择使用sigmoid函数 ,当然还有很多其他激活函数,下面再仔细聊!

  • 需要注意:1.一个神经元可以看成包含两个部分,一个是对输入的加权求和加上偏置,一个是激活函数对求和后的激活或者抑制。2.注意生物中的神经元要复杂的多,其中一个是生物中的输出是一个脉冲,而现在大多数的数学模型神经输出的就是一个值,当然现在也有一些脉冲人工神经网络,可以自行了解!

2 作为线性分类器的单个神经元


  • 比如基础的逻辑回归,结合上面的神经元知识,可以发现,逻辑回归就是激活函数是sigmoid的单层简单神经网络。也就是说,只要在神经元的输出端有一个合适的损失函数,就能让单个神经元变成一个线性分类器。因此说,那些线性的分类器本身就是一个单层神经网络

  • 但注意,对于非线性的模型:SVM和神经网络走了两条不同的道路:神经网络通过多个隐层的方法来实现非线性的函数,有一些理论支持(比如说带隐层的神经网络可以模拟任何函数),但是目前而言还不是非常完备;SVM则采用了kernel trick的方法,这个在理论上面比较完备(RKHS,简单地说就是一个泛函的线性空间)。两者各有好坏,神经网络最近的好处是网络设计可以很灵活,有很多的trick&tip,很多理论都不清不楚的;SVM的理论的确漂亮,但是kernel设计不是那么容易,所以最近也就没有那么热了。

3 为什么要是深度神经网而不是”肥胖“(宽度)神经网络?

肥胖”网络的隐藏层数较少,如上左图。虽然有研究表明,浅而肥的网络也可以拟合任何的函数,但它需要非常的“肥胖”,可能一层就要成千上万个神经元。而这直接导致的后果是参数的数量增加到很多很多。

也有实验表明,也就是上图的实验,我们可以清楚的看出,当准确率差不多的时候,参数的数量却相差数倍。这也说明我们一般用深层的神经网络而不是浅层“肥胖”的网络。

注意:说神经网络多少层数的时候一般不包括输入层。 在神经网络中的激活主要讲的是梯度的更新的激活

4神经网络中的偏置有什么意义?


最基础的神经元感知器如下:

也就是说: 偏置的大小度量了神经元产生正(负)激励的难易程度.

这是最简单的感知器神经元. 而现代神经网络中常用的Sigmoid, tanh或是ReLU都是在w.x+b的基础上加上一个激活函数, Bias也就是b的意义是一样的。

同时对于偏置需要注意的点是:偏置是不需要正则化的,并且正则化偏置的话会导致欠拟合。我们从意义上去理解话,若对偏置正则化(惩罚),会导致激活变得更加简单,偏差就会上升,学习的能力就会下降!

推荐阅读:

精选干货|近半年干货目录汇总

干货|十分钟带你看遍词向量模型

干货|一文搞懂Hungarian Algorithm匈牙利算法



          欢迎关注公众号学习交流~         

              欢迎加入交流群交流学习       



您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存